
section .data
msg db 'Hello, brave new world!' , 0Ah

section .text
global _start

_start:

    ;让两个寄存器 都指向字符串的起始地址
    mov ebx,msg
    mov eax,ebx

nextchar:
    cmp     byte [eax],0    ; (以字节为单位)比较，eax指向字符串，字符串以0结尾
    jz      finished        ; (如果是0)jump到标签finished
    inc     eax             ; (如果不是0)increment EAX中的地址
    jmp     nextchar        ; 跳转到标签nextchar（循环）
finished:
    sub     eax,ebx         ; eax=eax-ebx --> 字节数

    ; 打印字符串
    mov     edx,eax         ;参数： 字符串的长度
    mov     ecx,msg         ;参数：字符串的首地址
    mov     ebx,1
    mov     eax,4
    int     80h

    ;sys_exit(0)
    mov     ebx,0
    mov     eax,1
    int     80h